Method and apparatus for sharing viewing information

ABSTRACT

A method and apparatus for sharing viewing information is disclosed. In one embodiment, the method comprises receiving an designation of a second user from the first user; and transmitting the first user viewing information to the designated second user. The shared viewing information may comprise the identity of a currently viewed media program, a list of scheduled media program viewings, or the media program itself.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/876,964 filed Sep. 7, 2010 entitled “Method and Apparatus for SharingViewing Information”, issued on Nov. 19, 2013 as U.S. Pat. No.8,589,795, which is incorporated by reference in its entirety for allpurposes.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for viewing mediaprograms, and in particular to a system and method for sharing mediaprogram viewing information with third parties.

2. Description of the Related Art

The dissemination and playback of media programs has undergonesubstantial changes in the past decade. Previously, media programs(which may include audio, video, or both) were disseminated either byanalog broadcast (conventional, satellite, or cable) or by physicaldissemination of films to movie theaters.

These traditional dissemination and playback means remain in use afterthe advent of digital technology. However, digital technologies have hada profound effect on the dissemination and playback of media programs.

First, digital technology permitted the use of digital video recorders(DVRs). DVRs, while similar in function to standard analog videocassette recorders (VCRs), provide a number of additional usefulfunctions including live pause, the ability to record one program whileplaying back another, and the integration of the electronic programguides with DVR functionality (so that the recordation of media programscould be scheduled far in advance and more easily).

Second, largely due to improved signal processing and more andwidespread high-speed Internet access availability (e.g. DSL, fiber,and/or satellite), digital technology also permitted the disseminationand playback of media programs via the Internet. Dissemination of mediaprograms via the Internet may occur either by simple downloading,progressive downloading or streaming.

With progressive downloading, a media file having the media program isdownloaded via the Internet using dial-up, DSL, ADSL, cable, T1, orother high-speed connection, typically by a web server via the Internet.

Unlike simple downloading, in which bytes of the media file may bedownloaded in any convenient order, progressive downloading downloadsbytes from the beginning of a file and continues downloading the filesequentially and consecutively until the last byte. In some progressivedownloading implementations, the entire file must be downloaded firstbefore a media player can start playback. However, progressivedownloading may permit media players to start playback once enough ofthe beginning of the file has been downloaded. Playback of progressivelydownloaded media files is often delayed by slow Internet connections andis also often choppy and/or contains a high likelihood of stopping afteronly a few seconds. Once a progressively downloaded media program hasbeen completely downloaded, it may be stored on the end-user computerfor later use.

One of the disadvantages of progressive downloading is that the entitytransmitting the data (the web server) simply pushes the data to theclient as fast as possible. It may appear to be “streaming” the videobecause the progressive download capability of many media players allowsplayback as soon as an adequate amount of data has been downloaded.However, the user cannot fast-forward to the end of the file until theentire file has been delivered by the web server. Another disadvantagewith progressive downloading is that the web server does not makeallowances for the data rate of the video file. Hence if the networkbandwidth is lower than the data rate required by the video file, theuser would have to wait a period of time before playback can begin. Ifplayback speed exceeds the data transfer speed, playback may be pausedfor a period of time while additional data is downloaded, interruptingthe viewing experience. However, the video playback quality may behigher when the playback occurs because of the potentially higher datarate. For example, if a 100 kbps video file can be delivered over a 56kbps modem, the video will be presented at the 100 kbps rate, but theremay be periods when playback will be paused while additional video datais downloaded. The video data is typically downloaded and stored as atemporary file in its entirety.

Web servers typically use HTTP (hypertext transport protocol) on top ofTCP (transfer control protocol) to transfer files over the network. TCP,which controls the transport of data packets over the network, isoptimized for guaranteed delivery of data, not speed. Therefore, if abrowser senses that data is missing, a resend request will be issued andthe data will be resent. In networks with high delivery errors, resendrequests may consume a large amount of bandwidth. Since TCP is notdesigned for efficient delivery of adequate data or bandwidth control(but rather guaranteed delivery of all data), it is not preferred forthe delivery of video data in all applications.

Streaming delivers media content continuously to a media player andmedia playback occurs simultaneously. The end-user is capable of playingthe media immediately upon delivery by the content provider. Traditionalstreaming techniques originate from a single provider delivering astream of data to a set of end-users. High bandwidths and centralprocessing unit (CPU) power are required to deliver a single stream to alarge audience, and the required bandwidth of the provider increases asthe number of end-users increases.

Unlike progressive downloading, streaming media can be deliveredon-demand or live. Wherein progressive download requires downloading theentire file or downloading enough of the entire file to start playbackat the beginning, streaming enables immediate playback at any pointwithin the file. End-users may skip through the media file to startplayback or change playback to any point in the media file. Hence, theend-user does not need to wait for the file to progressively download.Typically, streaming media is delivered from a few dedicated servershaving high bandwidth capabilities.

A streaming media server is a specialized device that accepts requestsfor video files, and with information about the format, bandwidth andstructure of those files, delivers just the amount of data necessary toplay the video, at the rate needed to play it. Streaming media serversmay also account for the transmission bandwidth and capabilities of themedia player. Unlike the web server, the streaming media servercommunicates with the user computer using control messages and datamessages to adjust to changing network conditions as the video isplayed. These control messages can include commands for trick playfunctions such as fast forward, fast reverse, pausing, or seeking to aparticular part of the file. Since a streaming media server transmitsvideo data only as needed and at the rate that is needed, precisecontrol over the number of streams served can be maintained. Unlike thecase with progressive downloading, the viewer will not be able to viewhigh data rate videos over a lower data rate transmission medium.However, (1) streaming media servers provide users random access to thevideo file, (2) streaming media servers allow monitoring of who isviewing what video programs and how long they are watched (3) streamingmedia servers use transmission bandwidth more efficiently, since onlythe amount of data required to support the viewing experience istransmitted, and (4) the video file transmitted by streaming mediaservers is not stored in the viewer's computer, but discarded by themedia player, thus allowing more control over the content.

Streaming media servers may use HTTP and TCP to deliver video streams,but generally use RSTP (real time streaming protocol) and UDP (userdatagram protocol). These protocols permit control messages and savebandwidth by reducing overhead. Unlike TCP, when data is dropped duringtransmission, UDP does not transmit resent requests. Instead, the servercontinues to send data. Streaming media servers can also deliver livewebcasts and can multicast, which allows more than one client to tuneinto a single stream, thus saving bandwidth.

Typically, progressively downloaded media is transmitted to the usercomputer at a rate that is faster than playback. The media programplayer buffers this data, and may indicate how much of the media programhas been buffered by providing an indicator, usually as a part of a“progress bar.” A control is often provided that allows the user to goto any point in the program that has already been buffered by selectingthe control and moving it to a different location along the progressbar. This allows the user to randomly access any buffered portion of themedia program.

Streaming media players do not rely on buffering to provide randomaccess to any point in the media program. Instead, this is accomplishedthrough the use of control messages transmitted from the media player tothe streaming media server.

One of the limitations of the reception of traditionally broadcast mediaprograms is that subscribers who are not co-located cannot easily sharethe viewing experience. While they may be able to watch the mediaprogram at the same time in a broadcast model, it is not easy for thesubscribers to converse with one another during the broadcast to discussthe broadcast or other matters. This is even more the case when themedia programs are delivered via the Internet, as such media programsare typically delivered to individual users when requested and aretherefore unsynchronized. In such cases, even if a communication mediawere available, the participants would not necessarily be watching thesame portion of the media program. Further, transmitting the same mediaprogram independently to a number of different subscribers can wastebandwidth and reduce service quality for all subscribers. Accordingly,there is a need for a system and method for sharing viewing informationamong subscribers. The present invention satisfies this need.

SUMMARY OF THE INVENTION

To address the requirements described above, the present inventiondiscloses a method and apparatus for sharing viewing information of afirst user with a second user. In one embodiment, the method comprisesthe steps of receiving an designation of a second user from the firstuser; and transmitting the first user viewing information to thedesignated second user. The invention may also be embodied in anapparatus comprising a media program provider that includes a means forperforming the foregoing steps such as a first module for accepting andesignation of a second user from the first user; and a second modulefor transmitting the first user viewing information to the designatedsecond user.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is a diagram illustrating an exemplary media program system;

FIG. 2 illustrates an exemplary computer system that could be used toimplement elements of the present invention;

FIG. 3 is a diagram further illustrating a content delivery subsystemthat can be used for the provision of media programs in response to amedia program request;

FIG. 4 is a diagram illustrating an exemplary user interface presentingone embodiment of the media program player implemented by the usercomputer and presented on the display;

FIGS. 5A-5B are diagrams presenting exemplary method steps that can beused to practice the present invention; and

FIG. 6 is a drawing depicting one embodiment an interface showing of howfirst user viewing information may be presented to the second user

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

FIG. 1 is a diagram illustrating an exemplary media program system 100.In the illustrated embodiment, the system 100 may comprise one or moremedia program sources 120A, 120B, communicatively coupled to acommunication network 104 such as the Internet and each having one ormore source video servers 122A, 122B communicatively coupled to one ormore source media program databases 124A, 124B. The media program system100 further comprises a media program provider 110, communicativelycoupled to the communication network 104, and having one or moreprovider video servers 112 and one or more provider databases 114. Inone embodiment, the media program provider 110 is a video-on-demandand/or streaming media program provider.

The media program system 100 may stream media programs to one or moreuser computers including a first user computer 102A associated withfirst user 132A and a second user computer 102B associated with seconduser 132 B. Hereinafter, first user computer 102A and second usercomputer 102B may be alternatively referred to as user computer(s) 102and first user 132A and second user 132B may be alternatively referredto as user(s) 132. The media programs may be streamed directly from themedia program provider 110, or the media program provider 110 mayoperate as a portal, providing an interface to the media programsavailable from the media program sources 120A and 120B, but not themedia program itself (which is instead provided by the media programsource(s) 120).

In the first case, the media program provider 110 licenses mediaprograms from the media program sources 120 (such as www.fox.com orwww.nbc.com), and metadata for such programs is also typically providedto the media program provider 110 from the media program source 120 aswell. Such metadata can be retrieved by the media program provider'sdatabase 114 for use. If supplementary metadata is required, it can beobtained from a metadata source 130 independent from the media programprovider 110 and the media program source 120, as described furtherbelow.

In the second case, the media programs are streamed to the user computer102 directly from the servers of the media program source 120. When themedia program is streamed directly from the media program source 120, itis often the case that the metadata provided by the media program source120 is insufficient. In such cases, supplementary metadata may beobtained from independent metadata source 130 (such as www.tv.com orwww.imdb.com) or other third party sources. In this circumstance, therole of the media program provider 110 is that of a portal that providesthe user 132 a list of available media programs and an interface tosearch to find such programs and to view them.

Media programs and metadata may be obtained via a communication network104 such as the Internet, or through auxiliary (and/or dedicated)communication links 134). Such information may be obtained bywebcrawling (for example, using a program or automated script thatbrowses the World Wide Web in a methodical, automated manner).

Using the user computer 102, remote users 132 can communicate with themedia program provider 110 using the communication network 104, toobtain media programs (including video-on-demand and/or streaming videoservices) and to search the provider media program database 114 to findmedia programs of interest.

The media program system 100 may also comprise one or more advertisementproviders 140, which supply advertisements that are replayed inconnection with the media programs provided by the media programprovider 110 or media program sources 120. In the illustratedembodiment, the advertisement provider 140 includes an advertisementprovider server 142 communicatively coupled to an associated andcommunicatively coupled advertisement provider database 144.

Advertisements may be supplied from the advertisement provider 140 tothe media program provider 110 via the Internet 104, a dedicated link146, or by physical exchange of a memory storage device having theadvertisement. Such advertisements can be provided to and stored by themedia program provider 110 and streamed or downloaded along with themedia program to the user computer 102 at the appropriate time.

In one embodiment, the advertisements are integrated with the streamedor downloaded video from the media program provider 110. In anotherembodiment, the advertisements are not integrated with the mediaprogram, but are instead transmitted to the user computer 102 separatelyfrom the media program, and replayed at the appropriate time usingindices that indicate when each advertisement should be presented. Forexample, advertisements can be indexed and streamed or downloaded to theuser computer 102 (from the media program provider 110 or theadvertisement provider 140), and such advertisements can be played backto the user 132 at times indicated by corresponding indices in the mediaprogram.

FIG. 2 illustrates an exemplary computer system 202 that could be usedto implement elements of the present invention, including the usercomputer 102, servers 112, 122, and 142 and the databases 114, 124, and144. The computer 202 comprises a general purpose hardware processor204A and/or a special purpose hardware processor 204B (hereinafteralternatively collectively referred to as processor 204) and a memory206, such as random access memory (RAM). The computer 202 may be coupledto other devices, including input/output (I/O) devices such as akeyboard 214, a mouse device 216 and a printer 228.

In one embodiment, the computer 202 operates by the general purposeprocessor 204A performing instructions defined by the computer program210 under control of an operating system 208. The computer program 210and/or the operating system 208 may be stored in the memory 206 and mayinterface with the user 132 and/or other devices to accept input andcommands and, based on such input and commands and the instructionsdefined by the computer program 210 and operating system 208 to provideoutput and results.

Output/results may be presented on display 222 or provided to anotherdevice for presentation or further processing or action. Typically, thedisplay 222 comprises a plurality of picture elements (pixels) thatchange state to collectively present an image to the user 132. Forexample, the display 222 may comprise a liquid crystal display (LCD)having a plurality of separately addressable pixels, each with a liquidcrystal that changes to an opaque or translucent state to form a part ofthe image on the display in response to the data or informationgenerated by the processor 204 from the application of the instructionsof the computer program 210 and/or operating system 208 to the input andcommands. Similarly, plasma displays include a pixel having threeseparate subpixel cells, each with a different color phosphor. Thecolors blend together to create the color presented in the pixel. Pulsesof current flowing through the cells are varied according to the datagenerated by the processor from the application of the instructions ofthe computer program and/or operating system 208 in response to inputand commands, changing the intensity of the light provided by the pixel.Also, similarly, cathode ray tube (CRT) displays include a plurality ofpixels, each with each pixel having subpixels typically represented bydots or lines from an aperture grille. Each dot or line includes aphosphor coating that glows when struck by electrons from an electrongun. In response to the data generated by the processor from theapplication of instructions of the computer program and/or operatingsystem 208 and in response to input and commands, the electrons emittedby the electron gun are steered at the dots or lines, thus changing thestate of the associated pixel by causing the phosphor coating of thatdot or line to glow.

The image may be provided through a graphical user interface (GUI)module 218A. Although the GUI module 218A is depicted as a separatemodule, the instructions performing the GUI functions can be resident ordistributed in the operating system 208, the computer program 210, orimplemented with special purpose memory and processors.

Some or all of the operations performed by the computer 202 according tothe computer program 110 instructions may be implemented in a specialpurpose processor 204B. In this embodiment, some or all of the computerprogram 210 instructions may be implemented via firmware instructionsstored in a read only memory (ROM), a programmable read only memory(PROM) or flash memory in within the special purpose processor 204B orin memory 206. The special purpose processor 204B may also be hardwiredthrough circuit design to perform some or all of the operations toimplement the present invention. Further, the special purpose processor204B may be a hybrid processor, which includes dedicated circuitry forperforming a subset of functions, and other circuits for performing moregeneral functions such as responding to computer program instructions.In one embodiment, the special purpose processor is an applicationspecific integrated circuit (ASIC).

The computer 202 may also implement a compiler 212 which allows anapplication program 210 written in a programming language such as COBOL,C++, FORTRAN, or other language to be translated into processor 204readable code. After completion, the application or computer program 210accesses and manipulates data accepted from I/O devices and stored inthe memory 206 of the computer 202 using the relationships and logicthat was generated using the compiler 212.

The computer 202 also optionally comprises an external communicationdevice such as a modem, satellite link, Ethernet card, or other devicefor accepting input from and providing output to other computers.

In one embodiment, instructions implementing the operating system 208,the computer program 210, and the compiler 212 are tangibly embodied ina computer-readable medium, e.g., data storage device 220, which couldinclude one or more fixed or removable data storage devices, such as azip drive, floppy disc drive 224, hard drive, CD-ROM drive, tape drive,DVD, etc. Further, the operating system 208 and the computer program 210are comprised of computer program instructions which, when accessed,read and executed by the computer 202, causes the computer 202 toperform the steps necessary to implement and/or use the presentinvention or to load the program of instructions into a memory, thuscreating a special purpose data structure causing the computer tooperate as a specially programmed computer executing the method stepsdescribed herein. Computer program 210 and/or operating instructions mayalso be tangibly embodied in memory 206 and/or data communicationsdevices 230, thereby making a computer program product or article ofmanufacture according to the invention. As such, the terms “article ofmanufacture,” “program storage device” and “computer program product” asused herein are intended to encompass a computer program accessible fromany computer readable device or media.

Of course, those skilled in the art will recognize that any combinationof the above components, or any number of different components,peripherals, and other devices, may be used with the computer 202.

Although the term “user computer” is referred to herein, it isunderstood that a user computer 102 may include portable devices such asIPODs, IPHONEs, IPADs, cellphones, portable MP3 players, video gameconsoles, notebook computers, pocket computers, personal data assistants(PDAs) or any other device with suitable processing, communication, andinput/output capability.

FIG. 3 is a diagram further illustrating a content delivery subsystem(CDS) 300 that can be used for the provision of media programs inresponse to a media program request. Although discussed with referenceto the user 132 and the client computer 102, these same operations canbe used to present media programs to the host 140 and host server 142 aswell, with such media programs later embedded in webpages by the host140 so that they can be accessed by the client computer 102.

In the illustrated embodiment, the content delivery subsystem 300includes the user computer 102, the media program provider 110, and anadvertisement provider 140. Although the advertisement provider 140 isillustrated as a separate architectural entity than the media programprovider 110, the advertisement provider 140 may be integrated withinthe media program provider 110. The CDS 300 provides a means to providemedia programs and advertisements across a plurality of distributionnetworks, which may include, for example, www.hulu.com, www.imdb.com,www.aol.com or www.msn.com. Metadata related to media program andadvertisement content is stored in the content delivery system 300, asis data describing where the media programs and advertisements may befound within the CDS 300.

The user computer 102 may include an interface module 302 and a mediaprogram player 304. The interface module 302 includes instructionsperformed by the user computer 102 that are used to present informationto the user 132 and to accept user input, including commands. Theinterface module 302 may also be integrated with the media programplayer 304. The presented information may include a program guide,advertisement options, and the user input may include selectedadvertisement options and media program playback selections.

Using the user computer 102 and the interface module 302, the user 132enters a choice for a media program. The user interface module 302transmits a request message to a feed service 306 implemented by themedia program provider 110 for a program identifier (PID). The PID isused to identify content such as a specific media program running on aspecific distribution network. For example, season 2 of “The Office”running on www.hulu.com will have a different PID than the same exactshow running on www.msn.com.

The feed service 306 then returns the PID to the user interface module302. The PID and associated commands (e.g. the play command) areprovided to the media program player 304. The media program player 304may be embedded in a webpage from a third party, or may be part of awebpage maintained by the media program provider 110, or may beimplemented in a stand alone application.

The media program player 304 transmits the PID to a content selector 308implemented by the media program provider 110. The content selector 308identifies the actual path (uniform resource locator or URL, forexample) to the requested media program associated with the transmittedPID, as well as programming metadata that is used by the media programplayer 304 to help identify restrictions (for example, preventing accessto adult-themed content if the user 132 is known to be under 18),advertising targeting rules as well as advertising breaks. Theadvertising breaks indicate where advertisements may be inserted, andcan be specified in terms of the time since the beginning of the mediaprogram, the time remaining, or any other suitable measure. The URL andthe metadata are then transmitted to the media program player 304. Themedia program player 304 provides a video request to the media server114 at the URL received from the content selector 308. The video requestincludes the PID and may include other information as well. The videorequest may be for streaming or progressively downloading the requestedmedia program.

The media streaming server (MSS) 114 responds to the video request byproviding the media program to the user computer 102. In one embodiment,the MSS 114 is a service provider that has a wide range ofgeographically distributed computers that store replicated copies ofmedia programs and website content. The MSS 114 can be a third partyprovider (e.g. only contractually associated with the media programprovider 110), or can be part of the media program provider 110.Geographically diverse servers assure that when the user 132 requestsplayback of a media program, the media program is streamed from ageographically local server, to increase media program playbackperformance. Multiple servers also offer redundancy.

The MSS 114 obtains the media program from secure storage 312 which maybe disposed in the media program provider 110 facility, or which may bedisposed at a third party facility. The content management service 310interfaces with the feed service 306, the content selector 308, andsecure storage 312 to manage which media programs are provided to themedia server 114. External entities 314 can include third parties suchentities that provide the advertisements that are to be displayed to theuser (which includes sponsors and/or their advertising agencies), thirdparty providers of media programs, and entities from which the user 132may purchase goods or services.

The media program is transmitted (via streaming or progressivedownloading, for example) to the media program player 304. At or beforethe times identified in the advertising breaks defined above, the mediaprogram player 304 transmits an advertisement list request to theadvertisement server (ad server) 322. The ad server 322 includes anintercoupled advertisement select service 316, metadata cache service320, and auditing service 318. In one embodiment, the advertisementrequest includes information describing the media program currentlybeing viewed by the user as well as information about the user. Thisinformation can be used to select advertisements to be shown along withthe media program. The metadata cache service 320 performs off-linecomputations to determine the logical requirements of the advertisementrules (which describe the media program and user characteristicsconsistent with the advertisement). When an advertising request isreceived, the ad select service 316 retrieves the precomputedinformation and compares the precomputed logical characteristics of theadvertising rules with the advertisement request. Advertisementsrequests that have characteristics meeting the advertisement rules arethen identified. The address of the selected advertisement(s) are thentransmitted to the media program player 304. At or before theadvertisement break, the media program player 304 sends a request forthe advertisement to the URL of the advertising provider 340, whichtransmits the advertisement to the media program player 304 forplayback.

FIG. 4 is a diagram illustrating an exemplary user interface 402presenting one embodiment of the media program player (MPP) 304implemented by the user computer 102 and presented on the display 222.In the illustrated embodiment, the MPP 252 is presented in a browser403. The browser 403 may have an address box 404 where the user mayenter the uniform resource locator (URL) of a website of interest. Thebrowser 403 may also accept key words in a search box 406, and upon theselection of search button 408, provide a webpage with search resultsresponsive to the search request to the user. Further, the informationpresented on the browser 403 may be viewed by using scroll bar 412 byselecting control 410 with the annunciator 426 and moving the control410 along the scroll bar 412.

In one embodiment, the MPP 304 includes a view window 414 in which themedia program is played back to the user, and a plurality of controls416A-416F (hereinafter alternatively referred to as control(s) 416)which allow the playback of the media program to be controlled by theuser. The controls 416 include a stop control 416C that is used to stopthe playback of the media program, a play control 416F that is used tobegin or resume playback of the media program and a pause control 416Bthat is used to pause playback of the media program. The controls 416also include a fast forward control 416E that allow the user to fastforward through the media program, and a forward skip control 416D thatallows the user to skip to the next scene or to the next media program.In one embodiment, next scene skipping can be selected by momentarilyselecting the skip control 416D, while skipping to the next mediaprogram can be performed by selecting and holding the skip control 416D.Different scenes can be identified in the media program by use ofmarkers indicating which frames begin a new scene or by the use of mediaprogram metadata identifying the frames for the first frame in eachscene. Skip control 416A also allows skipping to the previous mediaprogram or scene, in the same way as skip control 416D.

In one embodiment, the MPP 304 may include a progress bar 422 that isrendered proximate the rendered media program in the view window 414. Ifthe media program is progressively downloaded to the MPP 304, theprogress bar 422 also may include a media buffer progress indicator 420to indicate how much of the media program has been transmitted to theuser computer 102 and buffered, and hence, how much of the media programmight be available for seek previewing. Since streaming video permitsthe user to obtain access to different portions of the media programwithout buffering (e.g. through use of control signals transmitted tothe media server 110 the media buffer progress indicator 420 is notrequired.

The control 418 indicates the temporal location of the frames currentlybeing depicted by the MPP 304. The user may command the MPP 304 toreplay any portion of the media program via control 418 manipulation byselecting the control 418 and moving the control 418 to a differentlocation along the progress bar 422. Leftmost locations on the progressbar 422 indicate temporal locations near the beginning of the mediaprogram, while rightmost locations indicate temporal locations near theend of the media program.

FIGS. 5A-5B are diagrams presenting exemplary method steps that can beused to practice the present invention. In block 502, the first usercomputer 102A accepts first user viewing information sharing preferencesfrom the first user. Such viewing preferences can indicate, for example,which other users the first user wishes to share viewing informationwith and which class of media programs should be included in the sharedviewing information. Media programs may be separated by classes definedby rating (e.g. PG, TV-14, Restricted, Adult), by subject matter (e.g.documentary, drama, sports) by topic (e.g. World War II, bicycleracing), by actor (e.g. Jimmy Stewart or Harrison Ford), length (e.g.media programs under one hour), by broadcast time (e.g. media programsbroadcast after 10PM), or any other measure. Further, the users 132 maysuggest or define classes and indicate membership of a media program ina defined class. For example the user 132 may define a category of mediaprograms relating to bicycling and a category of media programs relatingto surfing, and share only those media programs with other users thatthe first user 132A knows to be interested in bicycling and surfing,respectively. The user may also desire to share viewing information witha large number of other users, but not wishes to exclude any viewinginformation related to any media programs having greater than a PGrating. In block 504, the media program provider 110 receives the firstuser viewing information sharing preferences and stores them for lateruse.

The received first user viewing information sharing preferences mayinclude a designation of a second user 132B that the first user 132Awishes to share viewing information with, subject to the viewinginformation sharing preferences. In block 510, the viewing informationof the first user 132A is filtered according to the first user 132Aviewing information preferences, as shown in block 510. In block 512,the first user viewing information is transmitted to the designatedsecond user. The first user viewing information is received in thesecond user computer 102B and presented to the second user 132B, asshown in blocks 514 and 516. The foregoing interaction between the usercomputers 132 and the media program provider 110 may occur via theviewing information sharing dialog shown in FIG. 3 using the userinterface module 302 and one or more information sharing modules 324,which may be implemented by one or more hardware and/or software modulesin the media program provider 110.

FIG. 6 is a drawing depicting one embodiment an interface showing of howfirst user viewing information may be presented to the second user. Asdescribed above with respect to FIG. 6, the interface includes the mediaprogram player 304, which may or may not be presenting a media programto the second user 132B. The interface also includes a viewinginformation sharing portion 602 in which the first user viewinginformation and viewing information of other users may be presented. Inthe illustrated embodiment, the first user viewing information ispresented in a viewing preferences box 604. First user viewinginformation may simply be an alphanumeric identifier of the mediaprogram being currently presented to the first user 132A (for example,the name of that media program) a thumbnail of a frame of that mediaprogram or the box 604 may present the media program itself with movingimages that may or may not be synchronized with the media program beingpresented to the first user 132A. In one embodiment, if the second useruses cursor 426 to select the box 604 of text presented therein, theassociated media program is presented in the media program player 414.

In another embodiment, the viewing information comprises informationidentifying one or more media programs scheduled to be viewed by thefirst user 132A, and the time those media program(s) will be viewed.

The sharing portion 602 may also include a chat box 606. The chat box606 can be used to chat with the first user 132A about any topic,including the viewing preferences of the first user. Using this feature,the second user 132B can watch their selected program on the mediaprogram player 304, watch the media program being played to the firstuser in the viewing information box 604, and chat with the first user132A.

The sharing portion 602 may include the same information for a third,fourth, or fifth user, which may be navigable using scroll bar 608.

Other embodiments are also possible. For example, the first user viewinginformation as well as the viewing information of other users may bepresented in the same list, categorized appropriately so that the seconduser can easily note that several users are watching the same mediaprogram.

In another embodiment, when the second user 132B begins watching a mediaprogram and the content delivery system recognizes that other users thathave been designated so as to share viewing information with the seconduser, a message may be displayed to the second user indicating thoseother users are viewing the same program. The second user can thenchoose to synchronize the playback of the media program with one or moreof those users to enhance the viewing experience and potentially chatabout the media program.

In another embodiment, although the first user 132A has elected to shareviewing information with the second user 132B by designating as such,the second user 132B may elect not to receive the first user viewinginformation. This can be implemented by presenting an interfaceinforming the second user 132B that the first user 132A has designatedthe second user 132B as one whom with viewing information may be shared,and asking the second user 132B whether the second user 132B is willingto accept the first user viewing information. The same interface maythen ask the second user 132B whether second user information may beshared with the first user 132A.

As described above, the foregoing features can be used to share theviewing of a media program with two or more users 132, and allow thoseusers 132 to chat at the same time. This feature is useful when theusers are remote from one another (e.g. separated by a substantialdistance), but is also useful when the users are proximate or local toone another, perhaps, even in the same household. For example, the firstuser may wish to watch a media program on a large screen television inone room of an abode, while a second user may wish to watch the samemedia program on a computer screen while browsing the Internet. This canbe implemented by simply either the first user 132A or the second user132B identifying the other user as one with whom they would like toshare viewing information, beginning play of the media program using thefirst device (e.g. user computer 102A), then having the other of theusers select the viewing information box presented on their device (e.g.user computer 102B) to begin play of the same media program on thatdevice. Such playback of the media program can be synchronized with theplayback of the media program to the first user 132A or not.

Alternatively, when the media program provider 110 receives a request toplay a media program, the content delivery system 300 may determine thatanother user known or related to the requesting user may be interestedin watching the same media program. The media program provider 110 mayrecognize that the first user 132A may desire to share the media programwith a second user 132B, and prompt the first user 132A to indicatewhether the first user is so inclined. If the first user 132A indicatesthey want to share the media program with the second user 132B, theyindicate as such by designating the second user 132A as such.

FIG. 5B is a diagram illustrating exemplary steps that can be used toprompt one user to share a media program with a second user. In block518, the first user computer 102A accepts a selection of a media programfrom the first user 132A. The selection may be for immediate or laterplayback of the media program. In block 520, the media program provider110 receives the selection of the media program from the first usercomputer 102A. The media program provider 110 then determines if thefirst user 132A may desire to share the playback of the media programwith a second user 132B, as shown in block 522. If it is determined thatthe first user 132A may desire as such, a prompt is transmitted from themedia program provider 110 to the first user computer 102A to providethe designation of the second user 132B indicating that the first user132A wishes to share playback of the media program with the second user132B, as shown in block 524. The first user computer 102A receives theprompt, and processing is passed to block 502 where the first user 132Amay provide input describing viewing information sharing preferences, inthis case, that the first user wants to share the viewing information(in this case, the playback of the media program itself) with the seconduser.

The media program provider 110 may determine that the first user 132Amay share common attributes with and be interested in sharing the mediaprogram with another user in a number of different ways. For example,before media programs are delivered to user computers 102, the mediaprogram provider may require or request that the users 132 associatedwith those computers 102 provide registration information. Suchregistration information may include, for example, the street address,ZIP code, or telephone number of the user 132. Such information can beused to adduce whether the user is likely a member of the same householdor living within the same structure as other users. Other informationabout the user may be used to determine that users may share commonattributes. For example, one user's registration information may haveindicated an interest in a particular sporting activity, entertainmentactivity or other topic. Based on geographical information and such userpreferences, the media program provider 110 may identify users who wouldbe interested in sharing the viewing of a media program or other viewerinformation. Other information, such as the internet protocol (IP)address of users can be used to determine that two or more users may beof the same household or otherwise interested in sharing viewerinformation.

One advantage of the foregoing is that if two users in the samehousehold or sharing the same IP address are both interested in sharingthe viewing of a media program, one version of the media program can betransmitted to both users at the same time, a process which wouldrequire less transmission bandwidth than the transmission of the samemedia program to two users separately.

In another aspect of the present invention, the selected media programis transmitted to the first user 132A and the second user 132B at thesame time, but the advertisements presented to the first user 132A andthe second user 132B are selected by the advertisement select service316 according to parameters unique to each user 132, such as the user'spreferences or viewing history. This permits advertisements to beselected individually for each user 132, while viewing the same mediaprogram.

Conclusion

This concludes the description of the preferred embodiments of thepresent invention. The foregoing description of the preferred embodimentof the invention has been presented for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise form disclosed. Many modifications andvariations are possible in light of the above teaching. It is intendedthat the scope of the invention be limited not by this detaileddescription, but rather by the claims appended hereto. The abovespecification, examples and data provide a complete description of themanufacture and use of the composition of the invention. Since manyembodiments of the invention can be made without departing from thespirit and scope of the invention, the invention resides in the claimshereinafter appended.

1.-20. (canceled)
 21. A method comprising: receiving, by a computingdevice, a request from a first user to play a video; determining, by thecomputing device, information related to the first user and a seconduser; determining, by the computing device, that the second user may beinterested in viewing the video based on analyzing the determinedinformation; determining, by the computing device, if the first userwants to share the video with the second user; and when the first userwants to share the video with the second user, sending, by the computingdevice, the video in a coordinated manner to both the first user and thesecond user.
 22. The method of claim 21, wherein determining theinformation comprises: receiving, by the computing device, registrationinformation from the first user and the second user prior to receivingthe request from the first user, wherein the registration information isused to determine that the second user may be interested in viewing thevideo.
 23. The method of claim 21, wherein determining that the seconduser may be interested in viewing the video comprises: determining, bythe computing device, the second user is in a same geographic locationas the first user.
 24. The method of claim 23, wherein the second useris determined to be in a same physical household as the first user basedon address information determined for the first user and the seconduser.
 25. The method of claim 24, wherein the second user is determinedto be in the same physical household as the first user based on anInternet Protocol (IP) address of the first user and an IP address ofthe second user.
 26. The method of claim 21, wherein determining thesecond user may be interested in viewing the video comprises:determining, by the computing device, the second user has a commonattribute as the first user.
 27. The method of claim 21, wherein sendingthe video in the coordinated manner to both the first user and thesecond user comprises: sending, by the computing device, one version ofthe video to the first user and the second user.
 28. The method of claim27, wherein sending one version of the video to the first user and thesecond user comprises: sending, by the computing device, differentadvertisements to the first user and the second user during the viewingof the one version of the video by the first user and the second user.29. The method of claim 21, further comprising: receiving, from thefirst user, a designation of a class of video that describes acharacteristic of video for determining which videos should berestricted from sharing with the second user; determining, by thecomputing device, if the video is in the class of video; when the videois not a member of the class, determining, by the computing device, thefirst user wants to share the video with the second user; and when thevideo is not a member of the class, determining, by the computingdevice, the first user does not want to share the video with the seconduser.
 30. The method of claim 21, wherein determining the second usermay be interested in viewing the video comprises: determining, by thecomputing device, user sharing preferences for the first user; anddetermining, by the computing device, if the first user designated thesecond user for sharing videos in the user sharing preferences.
 31. Themethod of claim 21, wherein determining if the first user wants to sharethe video with the second user comprises: sending, by the computingdevice, a prompt to the first user asking the first user if the firstuser wants to share the video with the second user; and receiving, bythe computing device, a response from the first user indicating thefirst user wants to share the video with the second user.
 32. The methodof claim 21, wherein prior to sending the video in the coordinatedmanner to both the first user and the second user, the method furthercomprising: sending, by the computing device, viewing information to thesecond user indicating the first user wants to share the video; andreceiving, by the computing device, confirmation from the second userthat the second user wants to view the video.
 33. A non-transitorycomputer-readable storage medium containing instructions, that whenexecuted, control a computer system to be configured for: receiving arequest from a first user to play a video; determining informationrelated to the first user and a second user; determining that the seconduser may be interested in viewing the video based on analyzing thedetermined information; determining if the first user wants to share thevideo with the second user; and when the first user wants to share thevideo with the second user, sending the video in a coordinated manner toboth the first user and the second user.
 34. The non-transitorycomputer-readable storage medium of claim 33, wherein determining thatthe second user may be interested in viewing the video comprises:determining the second user is in a same geographic location as thefirst user.
 35. The non-transitory computer-readable storage medium ofclaim 34, wherein the second user is determined to be in a same physicalhousehold as the first user based on address information determined forthe first user and the second user.
 36. The non-transitorycomputer-readable storage medium of claim 35, wherein the second user isdetermined to be in the same physical household as the first user basedon an Internet Protocol (IP) address of the first user and an IP addressof the second user.
 37. The non-transitory computer-readable storagemedium of claim 33, wherein sending the video in the coordinated mannerto both the first user and the second user comprises: sending oneversion of the video to the first user and the second user.
 38. Thenon-transitory computer-readable storage medium of claim 37, whensending one version of the video to the first user and the second usercomprises: sending different advertisements to the first user and thesecond user during the viewing of the one version of the video by thefirst user and the second user.
 39. The non-transitory computer-readablestorage medium of claim 33, further configured for: receiving, from thefirst user, a designation of a class of video that describes acharacteristic of video for determining which videos should berestricted from sharing with the second user; determining if the videois in the class of video; when the video is not a member of the class,determining the first user wants to share the video with the seconduser; and when the video is not a member of the class, determining thefirst user does not want to share the video with the second user.
 40. Anapparatus comprising: one or more computer processors; and anon-transitory computer-readable storage medium comprising instructions,that when executed, control the one or more computer processors to beconfigured for: receiving a request from a first user to play a video;determining information related to the first user and a second user;determining that the second user may be interested in viewing the videobased on analyzing the determined information; determining if the firstuser wants to share the video with the second user; and when the firstuser wants to share the video with the second user, sending the video ina coordinated manner to both the first user and the second user.